package com.esm.dao;

import net.sf.json.JSONArray;

import net.sf.json.JSONObject;

/**
 * 
 * @author zyj
 *
 */
public interface SignDao {
	/**
	 * 签到
	 * @param uid 签到的用户ID
	 * @param start 签到时间
	 * @param sgroup 签到的分组
	 * @return 是否签到成功
	 */
	public boolean addStartTime(int uid,String start,String sgroup);
	
	/**
	 * 签退
	 * @param endTime 签退的时间
	 * @param sgroup 签退所在的组
	 * @return 是否签退成功
	 */
	public boolean addLeaveTime(String endTime,String sgroup);
	
	/**
	 * 查询签到和签退的时间
	 * @param sgroup 签到签退所在分组
	 * @return 签到签退时间的json数组
	 */
	public JSONObject searchSignTime(String sgroup);
	
	/**
	 * 根据签到签退时间改变对应状态
	 * @param sgroup 当前所在分组
	 * @param state 生成的状态
	 * @return 是否修改成功
	 */
	public boolean changeState(String sgroup,String state);


/**
 * SignDao
 * 签到Dao层
 * @author 魏长均
 *
 */

	/**
	 * 根据年份selectYear查询员工签到记录
	 * @param selectYear		选择的年份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findEmpSign(String selectYear,int page,int pageSize);
	
	/**
	 * 根据年、月份selectYear、selectMonth查询员工签到记录
	 * @param selectYear		选择的年份
	 * @param selectMonth	选择的月份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrMthEmpSign(String selectYear,String selectMonth,int page,int pageSize);
	
	/**
	 * 根据年、月、日,selectYear、selectMonth、selectDay查询员工签到记录
	 * @param selectYear		选择的年份
	 * @param selectMonth	选择的月份
	 * @param selectDay	选择的月份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrMthDayEmpSign(String selectYear,String selectMonth,String selectDay,int page,int pageSize);
	
	/**
	 * 查询签到记录总行数
	 * @param selectYear	选择的年份
	 * @return 查询总行数
	 * @author 魏长均
	 */
	public int findEmpSignTotalRows(String selectYear);
	
	/**
	 *查询签到记录总行数
	 * @param selectYear	选择的年份
	 * @param selectMonth	选择的月份
	 * @return 查询总行数
	 * @author 魏长均
	 */
	public int findYrMthSignTotalRows(String selectYear,String selectMonth);
	
	/**
	 *查询签到记录总行数
	 * @param selectYear	选择的年份
	 * @param selectMonth	选择的月份
	 * @return 查询总行数
	 * @author 魏长均
	 */
	public int findYrMthDaySignTotalRows(String selectYear,String selectMonth,String selectDay);
	
	/**
	 * 查询部门选择年签到记录总行数
	 * @param dep_id	部门id
	 * @param selectYear		选择的年份
	 * @return	查询总行数
	 * @author 魏长均
	 */
	public int findDeptYrSignTotalRows(int dep_id,String selectYear);
	
	/**
	 * 查询员工选择年签到记录总行数
	 * @param uid	员工id
	 * @param selectYear		选择的年份
	 * @return	查询总行数
	 * @author 魏长均
	 */
	public int findEmpYrSignTotalRows(int uid,String selectYear);
	
	/**
	 * 查询部门选择年、月签到记录总行数
	 * @param dep_id	部门id
	 * @param selectYear		选择的年份
	 * @param selectMonth	选择的月份
	 * @return	查询总行数
	 * @author 魏长均
	 */
	public int findDeptYrMthSignTotalRows(int dep_id,String selectYear,String selectMonth);
	
	/**
	 * 查询部员工选择年、月签到记录总行数
	 * @param uid		员工id
	 * @param selectYear		选择的年份
	 * @param selectMonth	选择的月份
	 * @return	查询总行数
	 * @author 魏长均
	 */
	public int findEmpYrMthSignTotalRows(int uid,String selectYear,String selectMonth);
	
	/**
	 * 获取部门选择年、月、日签到记录总行数
	 * @param dep_id	部门id
	 * @param selectYear		选择的年份
	 * @param selectMonth	选择的月份
	 * @param selectDay		选择的天
	 * @return	查询总行数
	 * @author 魏长均
	 */
	public int findDeptYrMthDaySignTotalRows(int dep_id,String selectYear,String selectMonth,String selectDay);
	
	/**
	 * 查询员工 选择年、月、日签到记录总行数
	 * @param uid	部门id
	 * @param selectYear		选择的年份
	 * @param selectMonth	选择的月份
	 * @param selectDay		选择的天
	 * @return	查询总行数
	 * @author 魏长均
	 */
	public int findEmpYrMthDaySignTotalRows(int uid,String selectYear,String selectMonth,String selectDay);
	
	/**
	 * 根据年、月份selectYear查询部门签到记录
	 * @param dep_id		部门id
	 * @param selectYear		选择的年份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrDeptSign(int dep_id,String selectYear,int page,int pageSize);
	
	/**
	 * 根据年、月份selectYear查询员工签到记录
	 * @param uid		员工id
	 * @param selectYear		选择的年份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrEmpSign(int uid,String selectYear,int page,int pageSize);
	
	/**
	 * 根据年、月份selectYear、selectMonth查询员部门签到记录
	 * @param dep_id		部门id
	 * @param selectYear		选择的年份
	 * @param selectMonth		选择的月份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrMthDeptSign(int dep_id,String selectYear,String selectMonth,int page,int pageSize);
	
	/**
	 * 根据年、月份selectYear、selectMonth查询员工签到记录
	 * @param uid		员工id
	 * @param selectYear		选择的年份
	 * @param selectMonth		选择的月份
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray fingYrMthEmpSign(int uid,String selectYear,String selectMonth,int page,int pageSize);
	
	/**
	 * 根据年、月、日,selectYear、selectMonth、selectDay查询部门签到记录
	 * @param dep_id		部门id
	 * @param selectYear		选择的年份
	 * @param selectMonth		选择的月份
	 * @param selectDay		选择的日
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrMthDayDeptSign(int dep_id,String selectYear,String selectMonth,String selectDay,int page,int pageSize);
	
	/**
	 * 根据年、月、日,selectYear、selectMonth、selectDay查询部门签到记录
	 * @param uid		员工id
	 * @param selectYear		选择的年份
	 * @param selectMonth		选择的月份
	 * @param selectDay		选择的日
	 * @param page	页码
	 * @param pageSize	分页条数
	 * @return	签到记录结果集
	 * @author 魏长均
	 */
	public JSONArray findYrMthDayEmpSign(int uid,String selectYear,String selectMonth,String selectDay,int page,int pageSize);

}
